Every enterprise has a need to secure resources accessed by employees, partners, and customers. For example, browser based access to portals which aggregate resources (web pages, applications, services, etc.) are typical in today's enterprises. Clients send requests to servers for resources, but before a server can return that resource it must determine if the requester is authorized to use the resource. This is also referred to as access control, which is typically performed based on a set of policies to determine whether a client is eligible to access the requested resource.
Policies and/or rules commonly used in a firewall are based on five fields: source and destination IP prefix, source and destination port, and protocol. However, such rules are typically based on IP addresses and ports (e.g., layer-4 information) that in some cases may not sufficiently identify a user (e.g., layer-7 information). Such an implementation tends to be fast but lacks functionality and flexibility.
In other areas, rules are used in products that do similar things existed as server applications such as Siteminder from Computer Associates or Aqualogix from BEA Systems. In these situations, applications can outsource access control decisions to Siteminder or Aqualogix. It is easier for auditing for regulatory compliance and can be used by multiple applications. However, such an access control tends to be slow and proprietary.
XACML (extensible access control markup language) has been defined and now being used to provide a standards-based policy language which allows administrators to define the access control requirements for their application resources. The language and schema support include data types, functions, and combining logic which allow complex (or simple) rules to be defined. XACML also includes an access decision language used to represent the runtime request for a resource. When a policy is located which protects a resource, functions compare attributes in the request against attributes contained in the policy rules ultimately yielding a permit or deny decision.
However, there has been a lack of efficient ways to manage XACML based rules and policies such that accesses to the rules and policies can be improved significantly.